Ext.define('SistIntegral.Semovientes.DetalleSemoviente',{
//alias : "VistaObjetivosPMT",
Panel     :   function(btns){
    if(!Ext.getCmp('pnlDetalleSemoviente'+btns.record.get('IdSemoviente'))){
     var panelDS = Ext.create('Ext.panel.Panel', {
        id:'pnlDetalleSemoviente'+btns.record.get('IdSemoviente'),
        title:btns.record.get('AreteEstablo'),
        layout:'fit',
        closable:true,
        tbar: Ext.create('Ext.toolbar.Toolbar', {
            layout: {
                overflowHandler: 'Menu'
            },
            items: ['->',{
                text: 'Estado y Categor&#237a',iconCls: 'estadoSemoviente',itemId:'estadoCategoria',
                hrefTarget:'detallesemoviente/estado',
                handler : function (btn) {
                    btn.record = btns.record;
                    new SistIntegral.Semovientes.DetalleSemoviente().PanelEstadoCategoria(btn);
                }
            },'-',{
                text: 'Fotos',iconCls: 'fotoSemoviente',itemId:'foto',
                hrefTarget:'detallesemoviente/foto/',
                handler : function (btn) {
                    new SistIntegral.Semovientes.DetalleSemoviente().PanelFoto(btn);
                }
            },'-',{
                text: 'Certificados',iconCls: 'dertificadoSemoviente',itemId:'certificado',
                hrefTarget:'detallesemoviente/certificado/',
                handler : function (btn) {
                    new SistIntegral.Semovientes.DetalleSemoviente().PanelCertificado(btn);
                }
            },'-',{
                text: 'Peso y Valor',iconCls: 'pesoValorSemoviente',itemId:'pesoValor',
                hrefTarget:'propiedadsemoviente/pesoValor/',
                handler : function (btn) {
                    btn.record = btns.record;
                    new SistIntegral.Semovientes.DetalleSemoviente().PanelPesoValor(btn);
                }
            },'-',{
                text: 'Ubicaci&#243n',iconCls: 'ubicacionSemoviente',itemId:'ubicacion',
                hrefTarget:'detallesemoviente/ubicacion/',
                handler : function (btn) {
                    btn.record = btns.record;
                    new SistIntegral.Semovientes.DetalleSemoviente().PanelUbicacion(btn);
                }
            }

        ]
        }),
        bodyBorder: false,
        //items:GridSemoviente,
        border:false
});
  
    //Ext.getCmp('PnlInventario').removeAll();
    Ext.getCmp('PnlInventario').add(panelDS);
    Ext.getCmp('PnlInventario').setActiveTab(panelDS);
        var parm = {};
        parm.record = btns.record;
        new SistIntegral.Semovientes.DetalleSemoviente().PanelPesoValor(parm);
    
    }
    else{
        Ext.getCmp('PnlInventario').setActiveTab(Ext.getCmp('pnlDetalleSemoviente'+btns.record.get('IdSemoviente')));
    }    
},

PanelEstadoCategoria: function(btnd){

function rEstado(value, p, record) {
if (value == "") {
    return '<span style="color:green;">SI</span>';
} else {
    return '<span style="color:red;">NO</span>';
}
}
if(!Ext.getCmp('PnlDetSemEstadoCategoria'+btnd.record.get('IdSemoviente'))){

var StoreEstadoActualSemoviente = Ext.create('Ext.data.Store', {
    model: 'EstadoActualSemoviente',
    pageSize:25,
    proxy: {
    type: 'ajax',
    url: 'estadoactualsemoviente/Index/'+btnd.record.get('IdSemoviente'),
    reader: {type: 'json',root: 'grid'}}
});

var StoreCategoriaSemoviente = Ext.create('Ext.data.Store', {
    model: 'CategoriaSemoviente',
    pageSize:25,
    proxy: {
    type: 'ajax',
    url: 'categoriasemoviente/Index/'+btnd.record.get('IdSemoviente'),
    reader: {type: 'json',root: 'grid'}}
});

var GridEstadoActualSemoviente = Ext.create('Ext.grid.Panel',{
  id:       'GridDetSemEstado'+btnd.record.get('IdSemoviente'),
  store:    StoreEstadoActualSemoviente,
  region :'center',
  columnLines:true,
  layout:   'fit',
  bbar:Ext.create('Ext.PagingToolbar',{store:StoreEstadoActualSemoviente,displayInfo: true,
        displayMsg: 'Registros {0} - {1} de {2}',
        emptyMsg: "No Existe Ubicacion para Mostrar"}),
  columns: [
    {text:'Estado Semoviente',flex:1,align:'left',dataIndex:'NomEstadoSemoviente'},
    {text:'Fecha Inicio',align:'center',width:100,dataIndex:'FechaInicio'},
    {text:'Fecha Fin',align:'center',width:100,dataIndex:'FechaFin'},
    {text:'Activo',align:'center',width:100,dataIndex:'FechaFin',renderer:rEstado}
  ],
  tbar:  Ext.create('Ext.toolbar.Toolbar', {
            layout: {
                overflowHandler: 'Menu'
            },
            items: ['->',{
                text: 'Agregar',iconCls: 'agregar',itemId:'create',
                hrefTarget:'estadoactualsemoviente/Create',
                handler : function (btn) {
                    btn.record = btnd.record;
                    btn.Titulo = 'Nueva Estado Semoviente';
                    btn.frm = new SistIntegral.Semovientes.DetalleSemoviente().FrmEstadoSemoviente(btn);
                    new SistIntegral.Semovientes.DetalleSemoviente().Window(btn);
                }
            }
            ]
            })
});

var GridCategoriaSemoviente = Ext.create('Ext.grid.Panel',{
  id:       'GridDetSemCategoria'+btnd.record.get('IdSemoviente'),
  store:    StoreCategoriaSemoviente,
  region :'center',
  columnLines:true,
  layout:   'fit',
  bbar:Ext.create('Ext.PagingToolbar',{store:StoreCategoriaSemoviente,displayInfo: true,
        displayMsg: 'Registros {0} - {1} de {2}',
        emptyMsg: "No Existe Ubicacion para Mostrar"}),
  columns: [
    {text:'Categoria Semoviente',flex:1,align:'left',dataIndex:'categoria'},
    {text:'Fecha Inicio',align:'center',width:100,dataIndex:'FechaInicio'},
    {text:'Fecha Fin',align:'center',width:100,dataIndex:'FechaFin'},
    {text:'Activo',align:'center',width:100,dataIndex:'FechaFin',renderer:rEstado}
  ],
  tbar:  Ext.create('Ext.toolbar.Toolbar', {
            layout: {
                overflowHandler: 'Menu'
            },
            items: ['->',{
                text: 'Agregar',iconCls: 'agregar',itemId:'create',
                hrefTarget:'estadoactualsemoviente/Create',
                handler : function (btn) {
                    btn.record = btnd.record;
                    btn.Titulo = 'Nueva Estado Semoviente';
                    btn.frm = new SistIntegral.Semovientes.DetalleSemoviente().FrmUbicacion(btn);
                    new SistIntegral.Semovientes.DetalleSemoviente().Window(btn);
                }
            }
            ]
            })
});

StoreEstadoActualSemoviente.load();
StoreCategoriaSemoviente.load();

var PnlDetSemEstadoCategoria = Ext.create('Ext.panel.Panel', {
    bodyPadding: 5,  // Don't want content to crunch against the borders
    width: 300,
    height:300,
    id:'PnlDetSemEstadoCategoria'+btnd.record.get('IdSemoviente'),
    defaults: {
            split: true
    },
    border:false,
    layout:'border',
    items: [GridEstadoActualSemoviente,{
        xtype:  'panel',
        id  :   'PnlCategoriaSemoviente'+btnd.record.get('IdSemoviente'),
        layout: 'fit',
        border: false,
        region: 'east',
        width:  '50%',
        items:  GridCategoriaSemoviente
    }]
    //renderTo: Ext.getBody()
});

    Ext.getCmp('pnlDetalleSemoviente'+btnd.record.get('IdSemoviente')).removeAll();
    Ext.getCmp('pnlDetalleSemoviente'+btnd.record.get('IdSemoviente')).add(PnlDetSemEstadoCategoria);
}
},

FrmEstadoSemoviente: function(btnf){
    
    var CmbEstadoSemoviente = new SistIntegral.Componentes.Objetos().CmbEstadoSemoviente();
    
    var Frm =  Ext.create('Ext.form.Panel', {
    id:'FrmPesoValor',
    //bodyStyle: 'background-color: rgba(251, 252, 252, 0);',
    bodyPadding:'5',
    fieldDefaults: {
        msgTarget: 'side',
        labelAlign: 'right',
        labelWidth: 60,
        anchor: '100%'
    },
    items: [CmbEstadoSemoviente,{
                xtype:'datefield',
                fieldLabel: 'Fecha',
                name: 'FechaInicio',
                allowBlank: false,
                flex:1
            },{
                xtype:'hiddenfield',
                name: 'IdSemoviente',
                allowBlank: false,
                value:btnf.record.get('IdSemoviente')
            }
        ],
    buttons: [{
        text: 'Guardar',
        iconCls:'guardar',
        handler: function(){
            var form = this.up('form').getForm();
            if (form.isValid()) {
            
            Ext.MessageBox.show({
               msg: ' Creado Registro ...',
               progressText: 'Actualizando...',
               width:300,
               wait:true,
               waitConfig: {interval:100},
               waitMsg:'Trabajando',
               icon:'ext-mb-download'
           });
                       
            form.submit({
                url: btnf.hrefTarget+(btnf.getItemId()=='edit' ? 'Poner Id':''),
                success: function(form, action) {

                    Ext.getCmp('GridPesoValor'+btnf.record.get('IdSemoviente')).getStore().load();
                    Ext.getCmp('ChartPesoValor'+btnf.record.get('IdSemoviente')).getStore().load();
                    
                    Ext.getCmp('WDetalleSemoviente').close();
                    
                    setTimeout(function(){
                            Ext.MessageBox.hide();
                            //Ext.example.msg('Hecho', 'Tu Operaci&#243n se Realiz&#243 Correctamente!');
                    }, 1000); 
                },
                failure: function(form, action) {
                
                Ext.getCmp('WDetalleSemoviente').close();
                    Ext.MessageBox.hide();
                    
                    Ext.MessageBox.show({
                    title: 'Error',
                    msg: action.result.msg,
                    buttons: Ext.MessageBox.OK,
                    icon: Ext.MessageBox.ERROR
                });
                
                }
            });
            }
        }
    },{
        text: 'Limpiar',
        iconCls:'limpiar',
        handler: function(){
            this.up('form').getForm().reset();
        }
    }]
    });
    
    return Frm;
},

PanelPesoValor: function(btnd){

if(!Ext.getCmp('PnlDetSemovientePesoValor'+btnd.record.get('IdSemoviente'))){
function rEstado(value, p, record) {

if (value == '') {
    return '<span style="color:green;">SI</span>';
} else {
    return '<span style="color:red;">NO</span>';
}
}

var StorePesoValor = Ext.create('Ext.data.Store', {
    model: 'PropiedadSemoviente',
    pageSize:25,
    proxy: {
    type: 'ajax',
    url: 'propiedadsemoviente/Index/'+btnd.record.get('IdSemoviente'),
    reader: {type: 'json',root: 'grid'}}
});

var StorePesoValorG = Ext.create('Ext.data.Store', {
    model: 'PropiedadSemoviente',
    pageSize:25,
    autoLoad:true,
    proxy: {
    type: 'ajax',
    url: 'propiedadsemoviente/IndexGrafica/'+btnd.record.get('IdSemoviente'),
    reader: {type: 'json',root: 'grid'}}
});

StorePesoValorG.on('load', function (store,records) {
   
   var chartPesoValor = Ext.create('Ext.chart.Chart', {
            xtype: 'chart',
            id:'ChartPesoValor'+btnd.record.get('IdSemoviente'),
            animate: true,
            store: StorePesoValorG,
            theme : 'Base',
            layout:   'fit',
            legend: {
                position: 'top'
            },

            axes: [{
                type: 'Numeric',
                minimum: 0,
                position: 'left',
                fields: ['Peso','Valor'],
                title: false,
                grid: true,
                label: {
                    font: '10px Arial'
                }
            }, {
                type: 'Category',
                position: 'bottom',
                fields: 'FechaInicio',
                title: false,
                grid: true,
                label: {
                    font: '11px Arial'
                }
            }],
            series: [{
                type: 'column',
                axis: 'left',
                xField: 'FechaInicio',
                yField: 'Peso'
            }, {
                type: 'line',
                axis: 'left',
                xField: 'FechaInicio',
                yField: 'Valor',
                title:'Costo',
                tips: {
                    trackMouse: true,
                    width: 150,
                    height: 60,
                    renderer: function(storeItem, item) {
                        this.setTitle(storeItem.get('FechaInicio') + '</br>Costo: S/. ' + storeItem.get('Valor')+ '</br>Peso: ' + storeItem.get('Peso'));
                    }
                },
                style: {
                    fill: '#18428E',
                    stroke: '#18428E',
                    'stroke-width': 3
                },
                markerConfig: {
                    type: 'circle',
                    size: 4,
                    radius: 4,
                    'stroke-width': 0,
                    fill: '#18428E',
                    stroke: '#18428E'
                }
            }]
        });
Ext.getCmp('PnlGraficaPesoValor'+btnd.record.get('IdSemoviente')).removeAll();
Ext.getCmp('PnlGraficaPesoValor'+btnd.record.get('IdSemoviente')).add(chartPesoValor);        
});

var GridPesoValor = Ext.create('Ext.grid.Panel',{
  id:       'GridPesoValor'+btnd.record.get('IdSemoviente'),
  store:    StorePesoValor,
  border:   true,
  region :'center',
  columnLines:true,
  layout:   'fit',
  bbar:Ext.create('Ext.PagingToolbar',{store:StorePesoValor,displayInfo: true,
        displayMsg: 'Registros {0} - {1} de {2}',
        emptyMsg: "No Existe Registros para Mostrar"}),
  columns: [
    {xtype: 'rownumberer'},
    {text:'Peso',flex:1,align:'right',dataIndex:'Peso'},
    {text:'Valor',flex:1,align:'right',dataIndex:'Valor'},
    {text:'Fecha Inicio',align:'center',width:100,dataIndex:'FechaInicio'},
    {text:'Fecha Fin',align:'center',width:100,dataIndex:'FechaFin'},
    {text:'Activo',align:'center',width:100,dataIndex:'FechaFin',renderer:rEstado}
  ],
  tbar:  Ext.create('Ext.toolbar.Toolbar', {
            layout: {
                overflowHandler: 'Menu'
            },
            items: ['->',{
                text: 'Agregar',iconCls: 'agregar',itemId:'create',
                hrefTarget:'propiedadsemoviente/Create',
                handler : function (btn) {
                    btn.record = btnd.record;
                    btn.Titulo = 'Nuevo Peso y Valor Para Semoviente';
                    btn.frm = new SistIntegral.Semovientes.DetalleSemoviente().FrmPesoValor(btn);
                    new SistIntegral.Semovientes.DetalleSemoviente().Window(btn);
                }
            }
            ]
            })
});

var PnlPesoValor = Ext.create('Ext.panel.Panel', {
    bodyPadding: 5,  // Don't want content to crunch against the borders
    width: 300,
    height:300,
    id:'PnlDetSemovientePesoValor'+btnd.record.get('IdSemoviente'),
    defaults: {
            split: true
    },
    border:false,
    layout:'border',
    items: [GridPesoValor,{
        xtype:  'panel',
        id  :   'PnlGraficaPesoValor'+btnd.record.get('IdSemoviente'),
        layout: 'fit',
        region: 'east',
        width:  '50%'//,
        //items:  chartPesoValor
    }]
    //renderTo: Ext.getBody()
});

StorePesoValor.load();
Ext.getCmp('pnlDetalleSemoviente'+btnd.record.get('IdSemoviente')).removeAll();
Ext.getCmp('pnlDetalleSemoviente'+btnd.record.get('IdSemoviente')).add(PnlPesoValor);
}
},

FrmPesoValor: function(btnf){
    //var ComboCPDUbicacion = new SistIntegral.Componentes.Objetos().ComboCPDUbicacion();
    
    var Frm =  Ext.create('Ext.form.Panel', {
    id:'FrmPesoValor',
    //bodyStyle: 'background-color: rgba(251, 252, 252, 0);',
    bodyPadding:'5',
    fieldDefaults: {
        msgTarget: 'side',
        labelAlign: 'right',
        labelWidth: 60,
        anchor: '100%'
    },
    items: [{
                xtype:'datefield',
                fieldLabel: 'Fecha',
                name: 'FechaInicio',
                allowBlank: false,
                flex:1
            },{
                xtype:'numberfield',
                fieldLabel: 'Valor',
                name: 'Valor',
                allowBlank: false
            },{
                xtype:'numberfield',
                fieldLabel: 'Peso',
                name: 'Peso',
                allowBlank: false
            },{
                xtype:'hiddenfield',
                name: 'IdSemoviente',
                allowBlank: false,
                value:btnf.record.get('IdSemoviente')
            }
        ],
    buttons: [{
        text: 'Guardar',
        iconCls:'guardar',
        handler: function(){
            var form = this.up('form').getForm();
            if (form.isValid()) {
            
            Ext.MessageBox.show({
               msg: ' Creado Registro ...',
               progressText: 'Actualizando...',
               width:300,
               wait:true,
               waitConfig: {interval:100},
               waitMsg:'Trabajando',
               icon:'ext-mb-download'
           });
                       
            form.submit({
                url: btnf.hrefTarget+(btnf.getItemId()=='edit' ? 'Poner Id':''),
                success: function(form, action) {

                    Ext.getCmp('GridPesoValor'+btnf.record.get('IdSemoviente')).getStore().load();
                    Ext.getCmp('ChartPesoValor'+btnf.record.get('IdSemoviente')).getStore().load();
                    
                    Ext.getCmp('WDetalleSemoviente').close();
                    
                    setTimeout(function(){
                            Ext.MessageBox.hide();
                            //Ext.example.msg('Hecho', 'Tu Operaci&#243n se Realiz&#243 Correctamente!');
                    }, 1000); 
                },
                failure: function(form, action) {
                
                Ext.getCmp('WDetalleSemoviente').close();
                    Ext.MessageBox.hide();
                    
                    Ext.MessageBox.show({
                    title: 'Error',
                    msg: action.result.msg,
                    buttons: Ext.MessageBox.OK,
                    icon: Ext.MessageBox.ERROR
                });
                
                }
            });
            }
        }
    },{
        text: 'Limpiar',
        iconCls:'limpiar',
        handler: function(){
            this.up('form').getForm().reset();
        }
    }]
    });
    
    return Frm;
},

PanelUbicacion: function(btnd){

function rAllName(value, p, record) {
return Ext.String.format(
'<div style="display: block;white-space: normal;">'+value+'</div>'
);
}

function rEstado(value, p, record) {
if (value == true) {
    return '<span style="color:green;">SI</span>';
} else {
    return '<span style="color:red;">NO</span>';
}
}
if(!Ext.getCmp('GridUbicacionSemoviente'+btnd.record.get('IdSemoviente'))){
var StoreUbicacionSemoviente = Ext.create('Ext.data.Store', {
    model: 'UbicacionSemoviente',
    pageSize:25,
    proxy: {
    type: 'ajax',
    url: 'ubicacionsemoviente/Index/'+btnd.record.get('IdSemoviente'),
    reader: {type: 'json',root: 'grid'}}
});

var GridUbicacionSemoviente = Ext.create('Ext.grid.Panel',{
  id:       'GridUbicacionSemoviente'+btnd.record.get('IdSemoviente'),
  store:    StoreUbicacionSemoviente,
  border:   false,
  //stateful :false,
  columnLines:true,
  layout:   'fit',
  bbar:Ext.create('Ext.PagingToolbar',{store:StoreUbicacionSemoviente,displayInfo: true,
        displayMsg: 'Registros {0} - {1} de {2}',
        emptyMsg: "No Existe Ubicacion para Mostrar"}),
  columns: [
    {text:'Proyecto',flex:1,align:'left',dataIndex:'Proyecto',renderer:rAllName},
    {text:'Fecha Inicio',align:'center',width:100,dataIndex:'FechaInicio'},
    {text:'Fecha Fin',align:'center',width:100,dataIndex:'FechaFin'},
    {text:'Activo',align:'center',width:100,dataIndex:'Estado',renderer:rEstado}
  ],
  tbar:  Ext.create('Ext.toolbar.Toolbar', {
            layout: {
                overflowHandler: 'Menu'
            },
            items: ['->',{
                text: 'Agregar',iconCls: 'agregar',itemId:'create',
                hrefTarget:'ubicacionsemoviente/Create',
                handler : function (btn) {
                    btn.record = btnd.record;
                    btn.Titulo = 'Nueva Ubicacion Semoviente';
                    btn.frm = new SistIntegral.Semovientes.DetalleSemoviente().FrmUbicacion(btn);
                    new SistIntegral.Semovientes.DetalleSemoviente().Window(btn);
                }
            }
//            ,'-',{
//                text: 'Eliminar',iconCls: 'eliminar',itemId:'delete',
//                hrefTarget:'ubicacionsemoviente/Delete/',
//                handler : function (btn) {
//                    
//                    //new SistIntegral.Semovientes.DetalleSemoviente().PanelCategoria(btn);
//                }}
            ]
            })
});

StoreUbicacionSemoviente.load();
    Ext.getCmp('pnlDetalleSemoviente'+btnd.record.get('IdSemoviente')).removeAll();
    Ext.getCmp('pnlDetalleSemoviente'+btnd.record.get('IdSemoviente')).add(GridUbicacionSemoviente);
}
},
FrmUbicacion: function(btnf){
    var ComboCPDUbicacion = new SistIntegral.Componentes.Objetos().ComboCPDUbicacion();
    
    var Frm =  Ext.create('Ext.form.Panel', {
    id:'FrmUbicacionSemoviente',
    //bodyStyle: 'background-color: rgba(251, 252, 252, 0);',
    bodyPadding:'5',
    fieldDefaults: {
        msgTarget: 'side',
        labelAlign: 'right',
        labelWidth: 60,
        anchor: '100%'
    },
    items: [ComboCPDUbicacion,{
                xtype:'datefield',
                fieldLabel: 'Fecha',
                name: 'FechaInicio',
                allowBlank: false,
                flex:1
            },{
                xtype:'numberfield',
                fieldLabel: 'Valor',
                name: 'Valor',
                allowBlank: false
            },{
                xtype:'numberfield',
                fieldLabel: 'Peso',
                name: 'Peso',
                allowBlank: false
            },{
                xtype:'hiddenfield',
                name: 'IdSemoviente',
                allowBlank: false,
                value:btnf.record.get('IdSemoviente')
            }
        ],
    buttons: [{
        text: 'Guardar',
        iconCls:'guardar',
        handler: function(){
            var form = this.up('form').getForm();
            if (form.isValid()) {
            
            Ext.MessageBox.show({
               msg: ' Creado Registro ...',
               progressText: 'Actualizando...',
               width:300,
               wait:true,
               waitConfig: {interval:100},
               waitMsg:'Trabajando',
               icon:'ext-mb-download'
           });
                       
            form.submit({
                url: btnf.hrefTarget+(btnf.getItemId()=='edit' ? 'Poner Id':''),
                success: function(form, action) {

                    Ext.getCmp('GridUbicacionSemoviente'+btnf.record.get('IdSemoviente')).getStore().load();     
                    Ext.getCmp('WDetalleSemoviente').close();
                    
                    setTimeout(function(){
                            Ext.MessageBox.hide();
                            //Ext.example.msg('Hecho', 'Tu Operaci&#243n se Realiz&#243 Correctamente!');
                    }, 1000); 
                },
                failure: function(form, action) {
                
                Ext.getCmp('WDetalleSemoviente').close();
                    Ext.MessageBox.hide();
                    
                    Ext.MessageBox.show({
                    title: 'Error',
                    msg: action.result.msg,
                    buttons: Ext.MessageBox.OK,
                    icon: Ext.MessageBox.ERROR
                });
                
                }
            });
            }
        }
    },{
        text: 'Limpiar',
        iconCls:'limpiar',
        handler: function(){
            this.up('form').getForm().reset();
        }
    }]
    });
    
    return Frm;
},
Window: function(btn){
    
    return Ext.create('widget.window', {
    id:'WDetalleSemoviente',
    title: btn.Titulo,
    closable: true,
    //bodyPadding:'5',
    border:false,
    width: 300,
    minWidth: 300,
    height: 200,
    minHeight:200,
    layout:'fit',
    modal: true
    ,items: [btn.frm]
    }).show();    
}
});